package com.zzyl.service;

import com.zzyl.base.PageResponse;
import com.zzyl.dto.AlertRuleDto;
import com.zzyl.vo.AlertRuleVo;
import com.zzyl.vo.DeviceDataVo;

public interface AlarmRuleService {

    /**
     * 创建报警规则
     * @param alertRuleDto
     */
    void create(AlertRuleDto alertRuleDto);

    /**
     * 分页查询报警规则
     * @param pageNum
     * @param pageSize
     * @param alertRuleName
     * @param functionName
     * @param productKey
     * @return
     */
    PageResponse<AlertRuleVo> page(Integer pageNum, Integer pageSize, String alertRuleName, String functionName, String productKey);

    /**
     * 根据ID查询报警规则
     * @param id
     * @return
     */
    AlertRuleVo read(Integer id);

    /**
     * 更新报警规则
     * @param id
     * @param alertRuleDto
     */
    void update(Long id, AlertRuleDto alertRuleDto);

    /**
     * 删除报警规则
     * @param id
     */
    void delete(Integer id);

    /**
     * 启用-禁用
     * @param id
     * @param status
     */
    void updateStatus(Long id, Integer status);

    /**
     * 一条设备的一个纬度的数据的校验
     * @param vo
     */
    void alertFilter(DeviceDataVo vo);
}
